﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GC2.Bussines;
using GC2.Bussines.BMAdmin;
using GC2.Entities.Admin;
using GC2.Entities.Seguridad;
using GC2.ExceptionHandler;

public partial class Admin_ConceptosGestion : GenericPage
{
    Usuarios usuario = new Usuarios();
    private Conceptos concepto = new Conceptos();    
    private ExceptionConstructor exNew = new ExceptionConstructor();
    private int Accion;

    #region Controles
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();
            if (!this.IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];        
                Accion = Convert.ToInt16(Session["Accion"].ToString());
                concepto = (Conceptos)Session["Concepto"];

                if (Accion > 1)
                {
                    concepto = (Conceptos)Session["Concepto"];
                    if (concepto.Id_Tipo == 1)
                    {
                        trCodEx.Visible = true;
                    }
                    else
                    {
                        trCodEx.Visible = false;
                    }
                    HidrataControles(concepto);
                    if (Accion == 2)
                    {
                        if (concepto.Id_Tipo == 1)
                        {
                            lblAccion.Text = "Modificación: Egreso"; 
                        }
                        if (concepto.Id_Tipo == 2)
                        {
                            lblAccion.Text = "Modificación: Ingreso";
                        }
                    }
                    else
                    {
                        lblAccion.Text = "Viendo Datos";
                    }
                }
                if (Accion == 1)
                {
                    if (concepto.Id_Tipo == 1)
                    {
                        lblAccion.Text = "Nuevo Concepto: Egreso";
                    }
                    if (concepto.Id_Tipo == 2)
                    {
                        trCodEx.Visible = false;
                        lblAccion.Text = "Nuevo Concepto: Ingreso";
                    }
                }
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        try
        {
            DesHidrataControles();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Seguridad/Default.aspx", false);
    }
    #endregion

    #region Métodos

    #region HidrataControles
    /// <summary>
    /// Hidrata Controles Concepto
    /// </summary>
    /// <param name="titular"></param>
    private void HidrataControles(Conceptos concepto)
    {
        try
        {
            txtConcepto.Text = concepto.Concepto;
            if (concepto.Id_Tipo == 1)
            {
                txtCodEx.Text = concepto.CodEx;
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region DesHidrataControles
    /// <summary>
    /// DesHidrata Controles Proveedor
    /// </summary>
    /// <param name="titular"></param>
    private void DesHidrataControles()
    {        
        try
        {
            BMConceptos bmConceptos = new BMConceptos(Connection);
            Accion = Convert.ToInt16(Session["Accion"].ToString());
            concepto = (Conceptos)Session["Concepto"];
            concepto.Concepto = txtConcepto.Text;
            List<Conceptos> listaConceptos = new List<Conceptos>();
            
            if (Accion == 1)
            {
                if (concepto.Id_Tipo == 2)
                {
                    bmConceptos.BMConceptosInsert(concepto);
                    lblAccion.Text = "Nuevo Concepto Ingreso Creado";
                    btnGuardar.Enabled = false;
                }
                if (concepto.Id_Tipo == 1)
                {
                    if (txtCodEx.Text == "")
                    {
                        bmConceptos.BMConceptosInsert(concepto);
                        lblAccion.Text = "Nuevo Concepto Egreso Creado";
                        btnGuardar.Enabled = false;
                    }
                    else
                    {
                        concepto.CodEx = txtCodEx.Text;
                        listaConceptos = bmConceptos.BMConceptosSearch(concepto);
                        if (listaConceptos.Count == 0)
                        {
                            bmConceptos.BMConceptosInsert(concepto);
                            lblAccion.Text = "Nuevo Concepto Egreso Creado";
                            btnGuardar.Enabled = false;
                        }
                        else
                        {
                            lblAccion.Text = "Cod. Ex. de Concepto ya existe";
                            return;
                        }
                    }
                }

               
                
            }
            if (Accion == 2)
            {
                if (concepto.Id_Tipo == 2)
                {
                    bmConceptos.BMConceptosUpdate(concepto);
                    lblAccion.Text = "Concepto Actualizado";
                }
                if (concepto.Id_Tipo == 1)
                {
                    if (txtCodEx.Text == "")
                    {
                        bmConceptos.BMConceptosUpdate(concepto);
                        lblAccion.Text = "Concepto Actualizado";
                    }
                    else
                    {
                        Conceptos conceptoControl = new Conceptos();
                        conceptoControl.CodEx = txtCodEx.Text;
                        listaConceptos = bmConceptos.BMConceptosSearch(conceptoControl);
                        if (listaConceptos.Count == 0)
                        {
                            concepto.CodEx = txtCodEx.Text;
                            bmConceptos.BMConceptosUpdate(concepto);
                            lblAccion.Text = "Concepto Actualizado";
                        }
                        else
                        {
                            lblAccion.Text = "Cod. Ex. de Concepto ya existe";
                        }
                    }
                }
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #endregion


}
